package br.com.esporte.repositorio.DAO.imp;

import java.util.Date;

import org.hibernate.Query;
import org.springframework.stereotype.Repository;

import br.com.esporte.negocios.entidade.imp.DiaPraticadoGrupo;
import br.com.esporte.negocios.entidade.imp.Grupo;
import br.com.esporte.repositorio.DAO.IDiaPraticadoGrupoDAO;
import br.com.esporte.repositorio.filtro.imp.FiltroDiaPraticadoGrupo;

/**
 * 
 * @author Milton Domingues
 *
 */
@Repository
public class DiaPraticadoGrupoDAO extends HibernateGenericDAO<DiaPraticadoGrupo, Long, FiltroDiaPraticadoGrupo> implements IDiaPraticadoGrupoDAO {

	public DiaPraticadoGrupoDAO() {
		super(DiaPraticadoGrupo.class);
	}

	@Override
	public DiaPraticadoGrupo consultarProximaDiaPraticadoGrupo(Grupo grupo) {

		StringBuilder hql = new StringBuilder();
		hql.append("FROM DiaPraticadoGrupo dia WHERE dia.grupo = :grupo AND dia.dataHoraInicio > :data ORDER BY dia.dataHoraInicio ASC");

		Query query = this.createQuery(hql.toString());

		query.setParameter("grupo", grupo);
		query.setDate("data", new Date(System.currentTimeMillis()));

		return (DiaPraticadoGrupo) query.setMaxResults(1).uniqueResult();
	}

}
